export {}
// 接口的使用 interface  内部 属性名: 类型  接口内部不需要写逗号间隔
interface Person {
  name: string
  age: number
}

interface Girl {
  name: string
  age?: number
}
// 比如说搜索功能   编辑和新增 中id就是可选项
const p: Person = {
  name: '小韩',
  age: 23,
}

const girl: Girl = {
  name: '小花',
}


// 原价商品
interface GoodsType {
  id: string
  price: string
}

// 打折商品 
// interface DisGoodsType {
//   id: string
//   price: string
//   disprice: string
// }
// 继承的方式写一下

interface DisGoodsType extends GoodsType {
  disprice: string
}


let goods: GoodsType = {
  id: '111',
  price: '222'
}

let disGoods: DisGoodsType = {
  id: '111',
  price: '333',
  disprice: '9.9'
}

interface Data {
  title: string
  content: string
}

interface Result {
  code: number
  msg: string
  data: Data
}

let res:Result = {
  code: 200,
  msg: '你对了',
  data: {
    title: '标题',
    content: '内容'
  }
}
console.log(res);

// 类型别名(type) 结合 交叉类型(&)也可以实现继承
type Animal = {
  name: string
  gender: string
}

type Dog = Animal & {
  say: string
}

let dog: Dog = {
  name: '球球',
  gender: 'boy',
  say: '汪汪'
}

interface Man {
  money: string
}


interface Man {
  meat: string,
}
// interface同名的不会覆盖,会合并
let man: Man = {
  money: '小目标',
  meat: '澳洲和牛'
}